package main

import "fmt"

/*
Golang中有3个位运算
分别是“按位与&、按位或|、按位异或^”，它们的运算规则是：
按位与&		：	两位全为1，结果为1，否则为0
按位或|、 	：	两位有一个为1，结果为1，否则为0
按位异或^	：	两位一个为0，一个为1，结果为1，否则为0

Golang中有2个移位运算符：
>>、<<右移和左移，运算规则：
右移运算符>>:		低位溢出，符号位不变，并用符号位补溢出的高位
左移运算符<<:		符号位不变，低位补0

2 ===> [0010]
3 ===> [0011]
*/

func main() {
	// 位运算的演示
	fmt.Println(2 & 3)
	fmt.Println(2 | 3)
	fmt.Println(2 ^ 3)
	fmt.Println(-2 ^ 2)

	a := 1 >> 2
	b := 1 << 2
	fmt.Println("a=", a, "b=", b)
}
